import renderTemplate from './renderTemplate.js';
import lookup from './lookup.js';
export default function parseArray(token, data) {
  /* 这里要递归调用renderTemplate函数，两个参数一个是要递归的token数组，
  以及这个数组所对应的数据对象data，这个参数token就是token[2]，
  这个数据对象通过lookup函数得到的数组相应索引得到的对象 */

  // 通过lookup将#后面的模板变量转换成相应的数组
  let arrData = lookup(data, token[1]);
  // 结果字符串
  let resultStr = '';
  /* 因为数据有几个就这个模板变量就循环几次，数据的个数就是arrData的长度
  然后把每次渲染之后的字符串重新拼接 */
  for (let i = 0; i < arrData.length; i++) {
    resultStr = resultStr + renderTemplate(token[2], {
      ...arrData[i],
      // 当循环的数组不是个复合数组(数组里面嵌套对象)，而是一个普通的数组，要把它转换成一个对象，才能被renderTemplate解析渲染
      // 因此需要一个自定义键，在这里这个键是 . 
      '.': arrData[i]
    });
  }
  return resultStr;
}
